package com.zj.fx.model.month;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import cn.hutool.core.util.StrUtil;

/**
 * 月评价供电所填报任务表 MonthSupplytaskExample
 * @author SQL_自动生成
 * @date 2023-07-17 14:20:54
 */
public class MonthSupplytaskExample {

    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public MonthSupplytaskExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        
            public Criteria andIdIsNull() {
                addCriterion("id is null");
                return (Criteria) this;
            }

            public Criteria andIdIsNotNull() {
                addCriterion("id is not null");
                return (Criteria) this;
            }

            public Criteria andIdEqualTo(String value) {
                addCriterion("id =", value, "id");
                return (Criteria) this;
            }

            public Criteria andIdNotEqualTo(String value) {
                addCriterion("id <>", value, "id");
                return (Criteria) this;
            }

            public Criteria andIdGreaterThan(String value) {
                addCriterion("id >", value, "id");
                return (Criteria) this;
            }

            public Criteria andIdGreaterThanOrEqualTo(String value) {
                addCriterion("id >=", value, "id");
                return (Criteria) this;
            }

            public Criteria andIdLessThan(String value) {
                addCriterion("id <", value, "id");
                return (Criteria) this;
            }

            public Criteria andIdLessThanOrEqualTo(String value) {
                addCriterion("id <=", value, "id");
                return (Criteria) this;
            }

            public Criteria andIdLike(String value) {
                addCriterion("id like", value, "id");
                return (Criteria) this;
            }

            public Criteria andIdNotLike(String value) {
                addCriterion("id not like", value, "id");
                return (Criteria) this;
            }

            public Criteria andIdIn(List<String> values) {
                addCriterion("id in", values, "id");
                return (Criteria) this;
            }

            public Criteria andIdNotIn(List<String> values) {
                addCriterion("id not in", values, "id");
                return (Criteria) this;
            }

            public Criteria andIdBetween(String value1, String value2) {
                addCriterion("id between", value1, value2, "id");
                return (Criteria) this;
            }

            public Criteria andIdNotBetween(String value1, String value2) {
                addCriterion("id not between", value1, value2, "id");
                return (Criteria) this;
            }

        
            public Criteria andFkEvaluationIdIsNull() {
                addCriterion("fk_evaluation_id is null");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdIsNotNull() {
                addCriterion("fk_evaluation_id is not null");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdEqualTo(String value) {
                addCriterion("fk_evaluation_id =", value, "fkEvaluationId");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdNotEqualTo(String value) {
                addCriterion("fk_evaluation_id <>", value, "fkEvaluationId");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdGreaterThan(String value) {
                addCriterion("fk_evaluation_id >", value, "fkEvaluationId");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdGreaterThanOrEqualTo(String value) {
                addCriterion("fk_evaluation_id >=", value, "fkEvaluationId");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdLessThan(String value) {
                addCriterion("fk_evaluation_id <", value, "fkEvaluationId");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdLessThanOrEqualTo(String value) {
                addCriterion("fk_evaluation_id <=", value, "fkEvaluationId");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdLike(String value) {
                addCriterion("fk_evaluation_id like", value, "fkEvaluationId");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdNotLike(String value) {
                addCriterion("fk_evaluation_id not like", value, "fkEvaluationId");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdIn(List<String> values) {
                addCriterion("fk_evaluation_id in", values, "fkEvaluationId");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdNotIn(List<String> values) {
                addCriterion("fk_evaluation_id not in", values, "fkEvaluationId");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdBetween(String value1, String value2) {
                addCriterion("fk_evaluation_id between", value1, value2, "fkEvaluationId");
                return (Criteria) this;
            }

            public Criteria andFkEvaluationIdNotBetween(String value1, String value2) {
                addCriterion("fk_evaluation_id not between", value1, value2, "fkEvaluationId");
                return (Criteria) this;
            }

        
            public Criteria andTaskMonthIsNull() {
                addCriterion("task_month is null");
                return (Criteria) this;
            }

            public Criteria andTaskMonthIsNotNull() {
                addCriterion("task_month is not null");
                return (Criteria) this;
            }

            public Criteria andTaskMonthEqualTo(String value) {
                addCriterion("task_month =", value, "taskMonth");
                return (Criteria) this;
            }

            public Criteria andTaskMonthNotEqualTo(String value) {
                addCriterion("task_month <>", value, "taskMonth");
                return (Criteria) this;
            }

            public Criteria andTaskMonthGreaterThan(String value) {
                addCriterion("task_month >", value, "taskMonth");
                return (Criteria) this;
            }

            public Criteria andTaskMonthGreaterThanOrEqualTo(String value) {
                addCriterion("task_month >=", value, "taskMonth");
                return (Criteria) this;
            }

            public Criteria andTaskMonthLessThan(String value) {
                addCriterion("task_month <", value, "taskMonth");
                return (Criteria) this;
            }

            public Criteria andTaskMonthLessThanOrEqualTo(String value) {
                addCriterion("task_month <=", value, "taskMonth");
                return (Criteria) this;
            }

            public Criteria andTaskMonthLike(String value) {
                addCriterion("task_month like", value, "taskMonth");
                return (Criteria) this;
            }

            public Criteria andTaskMonthNotLike(String value) {
                addCriterion("task_month not like", value, "taskMonth");
                return (Criteria) this;
            }

            public Criteria andTaskMonthIn(List<String> values) {
                addCriterion("task_month in", values, "taskMonth");
                return (Criteria) this;
            }

            public Criteria andTaskMonthNotIn(List<String> values) {
                addCriterion("task_month not in", values, "taskMonth");
                return (Criteria) this;
            }

            public Criteria andTaskMonthBetween(String value1, String value2) {
                addCriterion("task_month between", value1, value2, "taskMonth");
                return (Criteria) this;
            }

            public Criteria andTaskMonthNotBetween(String value1, String value2) {
                addCriterion("task_month not between", value1, value2, "taskMonth");
                return (Criteria) this;
            }

        
            public Criteria andSupplyIdIsNull() {
                addCriterion("supply_id is null");
                return (Criteria) this;
            }

            public Criteria andSupplyIdIsNotNull() {
                addCriterion("supply_id is not null");
                return (Criteria) this;
            }

            public Criteria andSupplyIdEqualTo(String value) {
                addCriterion("supply_id =", value, "supplyId");
                return (Criteria) this;
            }

            public Criteria andSupplyIdNotEqualTo(String value) {
                addCriterion("supply_id <>", value, "supplyId");
                return (Criteria) this;
            }

            public Criteria andSupplyIdGreaterThan(String value) {
                addCriterion("supply_id >", value, "supplyId");
                return (Criteria) this;
            }

            public Criteria andSupplyIdGreaterThanOrEqualTo(String value) {
                addCriterion("supply_id >=", value, "supplyId");
                return (Criteria) this;
            }

            public Criteria andSupplyIdLessThan(String value) {
                addCriterion("supply_id <", value, "supplyId");
                return (Criteria) this;
            }

            public Criteria andSupplyIdLessThanOrEqualTo(String value) {
                addCriterion("supply_id <=", value, "supplyId");
                return (Criteria) this;
            }

            public Criteria andSupplyIdLike(String value) {
                addCriterion("supply_id like", value, "supplyId");
                return (Criteria) this;
            }

            public Criteria andSupplyIdNotLike(String value) {
                addCriterion("supply_id not like", value, "supplyId");
                return (Criteria) this;
            }

            public Criteria andSupplyIdIn(List<String> values) {
                addCriterion("supply_id in", values, "supplyId");
                return (Criteria) this;
            }

            public Criteria andSupplyIdNotIn(List<String> values) {
                addCriterion("supply_id not in", values, "supplyId");
                return (Criteria) this;
            }

            public Criteria andSupplyIdBetween(String value1, String value2) {
                addCriterion("supply_id between", value1, value2, "supplyId");
                return (Criteria) this;
            }

            public Criteria andSupplyIdNotBetween(String value1, String value2) {
                addCriterion("supply_id not between", value1, value2, "supplyId");
                return (Criteria) this;
            }

        
            public Criteria andSupplyNameIsNull() {
                addCriterion("supply_name is null");
                return (Criteria) this;
            }

            public Criteria andSupplyNameIsNotNull() {
                addCriterion("supply_name is not null");
                return (Criteria) this;
            }

            public Criteria andSupplyNameEqualTo(String value) {
                addCriterion("supply_name =", value, "supplyName");
                return (Criteria) this;
            }

            public Criteria andSupplyNameNotEqualTo(String value) {
                addCriterion("supply_name <>", value, "supplyName");
                return (Criteria) this;
            }

            public Criteria andSupplyNameGreaterThan(String value) {
                addCriterion("supply_name >", value, "supplyName");
                return (Criteria) this;
            }

            public Criteria andSupplyNameGreaterThanOrEqualTo(String value) {
                addCriterion("supply_name >=", value, "supplyName");
                return (Criteria) this;
            }

            public Criteria andSupplyNameLessThan(String value) {
                addCriterion("supply_name <", value, "supplyName");
                return (Criteria) this;
            }

            public Criteria andSupplyNameLessThanOrEqualTo(String value) {
                addCriterion("supply_name <=", value, "supplyName");
                return (Criteria) this;
            }

            public Criteria andSupplyNameLike(String value) {
                addCriterion("supply_name like", value, "supplyName");
                return (Criteria) this;
            }

            public Criteria andSupplyNameNotLike(String value) {
                addCriterion("supply_name not like", value, "supplyName");
                return (Criteria) this;
            }

            public Criteria andSupplyNameIn(List<String> values) {
                addCriterion("supply_name in", values, "supplyName");
                return (Criteria) this;
            }

            public Criteria andSupplyNameNotIn(List<String> values) {
                addCriterion("supply_name not in", values, "supplyName");
                return (Criteria) this;
            }

            public Criteria andSupplyNameBetween(String value1, String value2) {
                addCriterion("supply_name between", value1, value2, "supplyName");
                return (Criteria) this;
            }

            public Criteria andSupplyNameNotBetween(String value1, String value2) {
                addCriterion("supply_name not between", value1, value2, "supplyName");
                return (Criteria) this;
            }

        
            public Criteria andFkSubcompanyIdIsNull() {
                addCriterion("fk_subcompany_id is null");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdIsNotNull() {
                addCriterion("fk_subcompany_id is not null");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdEqualTo(String value) {
                addCriterion("fk_subcompany_id =", value, "fkSubcompanyId");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdNotEqualTo(String value) {
                addCriterion("fk_subcompany_id <>", value, "fkSubcompanyId");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdGreaterThan(String value) {
                addCriterion("fk_subcompany_id >", value, "fkSubcompanyId");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdGreaterThanOrEqualTo(String value) {
                addCriterion("fk_subcompany_id >=", value, "fkSubcompanyId");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdLessThan(String value) {
                addCriterion("fk_subcompany_id <", value, "fkSubcompanyId");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdLessThanOrEqualTo(String value) {
                addCriterion("fk_subcompany_id <=", value, "fkSubcompanyId");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdLike(String value) {
                addCriterion("fk_subcompany_id like", value, "fkSubcompanyId");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdNotLike(String value) {
                addCriterion("fk_subcompany_id not like", value, "fkSubcompanyId");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdIn(List<String> values) {
                addCriterion("fk_subcompany_id in", values, "fkSubcompanyId");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdNotIn(List<String> values) {
                addCriterion("fk_subcompany_id not in", values, "fkSubcompanyId");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdBetween(String value1, String value2) {
                addCriterion("fk_subcompany_id between", value1, value2, "fkSubcompanyId");
                return (Criteria) this;
            }

            public Criteria andFkSubcompanyIdNotBetween(String value1, String value2) {
                addCriterion("fk_subcompany_id not between", value1, value2, "fkSubcompanyId");
                return (Criteria) this;
            }

        
            public Criteria andSubcompanyNameIsNull() {
                addCriterion("subcompany_name is null");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameIsNotNull() {
                addCriterion("subcompany_name is not null");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameEqualTo(String value) {
                addCriterion("subcompany_name =", value, "subcompanyName");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameNotEqualTo(String value) {
                addCriterion("subcompany_name <>", value, "subcompanyName");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameGreaterThan(String value) {
                addCriterion("subcompany_name >", value, "subcompanyName");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameGreaterThanOrEqualTo(String value) {
                addCriterion("subcompany_name >=", value, "subcompanyName");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameLessThan(String value) {
                addCriterion("subcompany_name <", value, "subcompanyName");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameLessThanOrEqualTo(String value) {
                addCriterion("subcompany_name <=", value, "subcompanyName");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameLike(String value) {
                addCriterion("subcompany_name like", value, "subcompanyName");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameNotLike(String value) {
                addCriterion("subcompany_name not like", value, "subcompanyName");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameIn(List<String> values) {
                addCriterion("subcompany_name in", values, "subcompanyName");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameNotIn(List<String> values) {
                addCriterion("subcompany_name not in", values, "subcompanyName");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameBetween(String value1, String value2) {
                addCriterion("subcompany_name between", value1, value2, "subcompanyName");
                return (Criteria) this;
            }

            public Criteria andSubcompanyNameNotBetween(String value1, String value2) {
                addCriterion("subcompany_name not between", value1, value2, "subcompanyName");
                return (Criteria) this;
            }

        
            public Criteria andTaskStateIsNull() {
                addCriterion("task_state is null");
                return (Criteria) this;
            }

            public Criteria andTaskStateIsNotNull() {
                addCriterion("task_state is not null");
                return (Criteria) this;
            }

            public Criteria andTaskStateEqualTo(String value) {
                addCriterion("task_state =", value, "taskState");
                return (Criteria) this;
            }

            public Criteria andTaskStateNotEqualTo(String value) {
                addCriterion("task_state <>", value, "taskState");
                return (Criteria) this;
            }

            public Criteria andTaskStateGreaterThan(String value) {
                addCriterion("task_state >", value, "taskState");
                return (Criteria) this;
            }

            public Criteria andTaskStateGreaterThanOrEqualTo(String value) {
                addCriterion("task_state >=", value, "taskState");
                return (Criteria) this;
            }

            public Criteria andTaskStateLessThan(String value) {
                addCriterion("task_state <", value, "taskState");
                return (Criteria) this;
            }

            public Criteria andTaskStateLessThanOrEqualTo(String value) {
                addCriterion("task_state <=", value, "taskState");
                return (Criteria) this;
            }

            public Criteria andTaskStateLike(String value) {
                addCriterion("task_state like", value, "taskState");
                return (Criteria) this;
            }

            public Criteria andTaskStateNotLike(String value) {
                addCriterion("task_state not like", value, "taskState");
                return (Criteria) this;
            }

            public Criteria andTaskStateIn(List<String> values) {
                addCriterion("task_state in", values, "taskState");
                return (Criteria) this;
            }

            public Criteria andTaskStateNotIn(List<String> values) {
                addCriterion("task_state not in", values, "taskState");
                return (Criteria) this;
            }

            public Criteria andTaskStateBetween(String value1, String value2) {
                addCriterion("task_state between", value1, value2, "taskState");
                return (Criteria) this;
            }

            public Criteria andTaskStateNotBetween(String value1, String value2) {
                addCriterion("task_state not between", value1, value2, "taskState");
                return (Criteria) this;
            }

        
            public Criteria andCreateDateIsNull() {
                addCriterion("create_date is null");
                return (Criteria) this;
            }

            public Criteria andCreateDateIsNotNull() {
                addCriterion("create_date is not null");
                return (Criteria) this;
            }

            public Criteria andCreateDateEqualTo(Date value) {
                addCriterion("create_date =", value, "createDate");
                return (Criteria) this;
            }

            public Criteria andCreateDateNotEqualTo(Date value) {
                addCriterion("create_date <>", value, "createDate");
                return (Criteria) this;
            }

            public Criteria andCreateDateGreaterThan(Date value) {
                addCriterion("create_date >", value, "createDate");
                return (Criteria) this;
            }

            public Criteria andCreateDateGreaterThanOrEqualTo(Date value) {
                addCriterion("create_date >=", value, "createDate");
                return (Criteria) this;
            }

            public Criteria andCreateDateLessThan(Date value) {
                addCriterion("create_date <", value, "createDate");
                return (Criteria) this;
            }

            public Criteria andCreateDateLessThanOrEqualTo(Date value) {
                addCriterion("create_date <=", value, "createDate");
                return (Criteria) this;
            }

            public Criteria andCreateDateLike(Date value) {
                addCriterion("create_date like", value, "createDate");
                return (Criteria) this;
            }

            public Criteria andCreateDateNotLike(Date value) {
                addCriterion("create_date not like", value, "createDate");
                return (Criteria) this;
            }

            public Criteria andCreateDateIn(List<Date> values) {
                addCriterion("create_date in", values, "createDate");
                return (Criteria) this;
            }

            public Criteria andCreateDateNotIn(List<Date> values) {
                addCriterion("create_date not in", values, "createDate");
                return (Criteria) this;
            }

            public Criteria andCreateDateBetween(Date value1, Date value2) {
                addCriterion("create_date between", value1, value2, "createDate");
                return (Criteria) this;
            }

            public Criteria andCreateDateNotBetween(Date value1, Date value2) {
                addCriterion("create_date not between", value1, value2, "createDate");
                return (Criteria) this;
            }

        
            public Criteria andCommitDateIsNull() {
                addCriterion("commit_date is null");
                return (Criteria) this;
            }

            public Criteria andCommitDateIsNotNull() {
                addCriterion("commit_date is not null");
                return (Criteria) this;
            }

            public Criteria andCommitDateEqualTo(Date value) {
                addCriterion("commit_date =", value, "commitDate");
                return (Criteria) this;
            }

            public Criteria andCommitDateNotEqualTo(Date value) {
                addCriterion("commit_date <>", value, "commitDate");
                return (Criteria) this;
            }

            public Criteria andCommitDateGreaterThan(Date value) {
                addCriterion("commit_date >", value, "commitDate");
                return (Criteria) this;
            }

            public Criteria andCommitDateGreaterThanOrEqualTo(Date value) {
                addCriterion("commit_date >=", value, "commitDate");
                return (Criteria) this;
            }

            public Criteria andCommitDateLessThan(Date value) {
                addCriterion("commit_date <", value, "commitDate");
                return (Criteria) this;
            }

            public Criteria andCommitDateLessThanOrEqualTo(Date value) {
                addCriterion("commit_date <=", value, "commitDate");
                return (Criteria) this;
            }

            public Criteria andCommitDateLike(Date value) {
                addCriterion("commit_date like", value, "commitDate");
                return (Criteria) this;
            }

            public Criteria andCommitDateNotLike(Date value) {
                addCriterion("commit_date not like", value, "commitDate");
                return (Criteria) this;
            }

            public Criteria andCommitDateIn(List<Date> values) {
                addCriterion("commit_date in", values, "commitDate");
                return (Criteria) this;
            }

            public Criteria andCommitDateNotIn(List<Date> values) {
                addCriterion("commit_date not in", values, "commitDate");
                return (Criteria) this;
            }

            public Criteria andCommitDateBetween(Date value1, Date value2) {
                addCriterion("commit_date between", value1, value2, "commitDate");
                return (Criteria) this;
            }

            public Criteria andCommitDateNotBetween(Date value1, Date value2) {
                addCriterion("commit_date not between", value1, value2, "commitDate");
                return (Criteria) this;
            }

        
            public Criteria andAuditDateIsNull() {
                addCriterion("audit_date is null");
                return (Criteria) this;
            }

            public Criteria andAuditDateIsNotNull() {
                addCriterion("audit_date is not null");
                return (Criteria) this;
            }

            public Criteria andAuditDateEqualTo(Date value) {
                addCriterion("audit_date =", value, "auditDate");
                return (Criteria) this;
            }

            public Criteria andAuditDateNotEqualTo(Date value) {
                addCriterion("audit_date <>", value, "auditDate");
                return (Criteria) this;
            }

            public Criteria andAuditDateGreaterThan(Date value) {
                addCriterion("audit_date >", value, "auditDate");
                return (Criteria) this;
            }

            public Criteria andAuditDateGreaterThanOrEqualTo(Date value) {
                addCriterion("audit_date >=", value, "auditDate");
                return (Criteria) this;
            }

            public Criteria andAuditDateLessThan(Date value) {
                addCriterion("audit_date <", value, "auditDate");
                return (Criteria) this;
            }

            public Criteria andAuditDateLessThanOrEqualTo(Date value) {
                addCriterion("audit_date <=", value, "auditDate");
                return (Criteria) this;
            }

            public Criteria andAuditDateLike(Date value) {
                addCriterion("audit_date like", value, "auditDate");
                return (Criteria) this;
            }

            public Criteria andAuditDateNotLike(Date value) {
                addCriterion("audit_date not like", value, "auditDate");
                return (Criteria) this;
            }

            public Criteria andAuditDateIn(List<Date> values) {
                addCriterion("audit_date in", values, "auditDate");
                return (Criteria) this;
            }

            public Criteria andAuditDateNotIn(List<Date> values) {
                addCriterion("audit_date not in", values, "auditDate");
                return (Criteria) this;
            }

            public Criteria andAuditDateBetween(Date value1, Date value2) {
                addCriterion("audit_date between", value1, value2, "auditDate");
                return (Criteria) this;
            }

            public Criteria andAuditDateNotBetween(Date value1, Date value2) {
                addCriterion("audit_date not between", value1, value2, "auditDate");
                return (Criteria) this;
            }

        
            public Criteria andCompleteDateIsNull() {
                addCriterion("complete_date is null");
                return (Criteria) this;
            }

            public Criteria andCompleteDateIsNotNull() {
                addCriterion("complete_date is not null");
                return (Criteria) this;
            }

            public Criteria andCompleteDateEqualTo(Date value) {
                addCriterion("complete_date =", value, "completeDate");
                return (Criteria) this;
            }

            public Criteria andCompleteDateNotEqualTo(Date value) {
                addCriterion("complete_date <>", value, "completeDate");
                return (Criteria) this;
            }

            public Criteria andCompleteDateGreaterThan(Date value) {
                addCriterion("complete_date >", value, "completeDate");
                return (Criteria) this;
            }

            public Criteria andCompleteDateGreaterThanOrEqualTo(Date value) {
                addCriterion("complete_date >=", value, "completeDate");
                return (Criteria) this;
            }

            public Criteria andCompleteDateLessThan(Date value) {
                addCriterion("complete_date <", value, "completeDate");
                return (Criteria) this;
            }

            public Criteria andCompleteDateLessThanOrEqualTo(Date value) {
                addCriterion("complete_date <=", value, "completeDate");
                return (Criteria) this;
            }

            public Criteria andCompleteDateLike(Date value) {
                addCriterion("complete_date like", value, "completeDate");
                return (Criteria) this;
            }

            public Criteria andCompleteDateNotLike(Date value) {
                addCriterion("complete_date not like", value, "completeDate");
                return (Criteria) this;
            }

            public Criteria andCompleteDateIn(List<Date> values) {
                addCriterion("complete_date in", values, "completeDate");
                return (Criteria) this;
            }

            public Criteria andCompleteDateNotIn(List<Date> values) {
                addCriterion("complete_date not in", values, "completeDate");
                return (Criteria) this;
            }

            public Criteria andCompleteDateBetween(Date value1, Date value2) {
                addCriterion("complete_date between", value1, value2, "completeDate");
                return (Criteria) this;
            }

            public Criteria andCompleteDateNotBetween(Date value1, Date value2) {
                addCriterion("complete_date not between", value1, value2, "completeDate");
                return (Criteria) this;
            }

        
            public Criteria andRejectReasonIsNull() {
                addCriterion("reject_reason is null");
                return (Criteria) this;
            }

            public Criteria andRejectReasonIsNotNull() {
                addCriterion("reject_reason is not null");
                return (Criteria) this;
            }

            public Criteria andRejectReasonEqualTo(String value) {
                addCriterion("reject_reason =", value, "rejectReason");
                return (Criteria) this;
            }

            public Criteria andRejectReasonNotEqualTo(String value) {
                addCriterion("reject_reason <>", value, "rejectReason");
                return (Criteria) this;
            }

            public Criteria andRejectReasonGreaterThan(String value) {
                addCriterion("reject_reason >", value, "rejectReason");
                return (Criteria) this;
            }

            public Criteria andRejectReasonGreaterThanOrEqualTo(String value) {
                addCriterion("reject_reason >=", value, "rejectReason");
                return (Criteria) this;
            }

            public Criteria andRejectReasonLessThan(String value) {
                addCriterion("reject_reason <", value, "rejectReason");
                return (Criteria) this;
            }

            public Criteria andRejectReasonLessThanOrEqualTo(String value) {
                addCriterion("reject_reason <=", value, "rejectReason");
                return (Criteria) this;
            }

            public Criteria andRejectReasonLike(String value) {
                addCriterion("reject_reason like", value, "rejectReason");
                return (Criteria) this;
            }

            public Criteria andRejectReasonNotLike(String value) {
                addCriterion("reject_reason not like", value, "rejectReason");
                return (Criteria) this;
            }

            public Criteria andRejectReasonIn(List<String> values) {
                addCriterion("reject_reason in", values, "rejectReason");
                return (Criteria) this;
            }

            public Criteria andRejectReasonNotIn(List<String> values) {
                addCriterion("reject_reason not in", values, "rejectReason");
                return (Criteria) this;
            }

            public Criteria andRejectReasonBetween(String value1, String value2) {
                addCriterion("reject_reason between", value1, value2, "rejectReason");
                return (Criteria) this;
            }

            public Criteria andRejectReasonNotBetween(String value1, String value2) {
                addCriterion("reject_reason not between", value1, value2, "rejectReason");
                return (Criteria) this;
            }

        
            public Criteria andRejectDateIsNull() {
                addCriterion("reject_date is null");
                return (Criteria) this;
            }

            public Criteria andRejectDateIsNotNull() {
                addCriterion("reject_date is not null");
                return (Criteria) this;
            }

            public Criteria andRejectDateEqualTo(Date value) {
                addCriterion("reject_date =", value, "rejectDate");
                return (Criteria) this;
            }

            public Criteria andRejectDateNotEqualTo(Date value) {
                addCriterion("reject_date <>", value, "rejectDate");
                return (Criteria) this;
            }

            public Criteria andRejectDateGreaterThan(Date value) {
                addCriterion("reject_date >", value, "rejectDate");
                return (Criteria) this;
            }

            public Criteria andRejectDateGreaterThanOrEqualTo(Date value) {
                addCriterion("reject_date >=", value, "rejectDate");
                return (Criteria) this;
            }

            public Criteria andRejectDateLessThan(Date value) {
                addCriterion("reject_date <", value, "rejectDate");
                return (Criteria) this;
            }

            public Criteria andRejectDateLessThanOrEqualTo(Date value) {
                addCriterion("reject_date <=", value, "rejectDate");
                return (Criteria) this;
            }

            public Criteria andRejectDateLike(Date value) {
                addCriterion("reject_date like", value, "rejectDate");
                return (Criteria) this;
            }

            public Criteria andRejectDateNotLike(Date value) {
                addCriterion("reject_date not like", value, "rejectDate");
                return (Criteria) this;
            }

            public Criteria andRejectDateIn(List<Date> values) {
                addCriterion("reject_date in", values, "rejectDate");
                return (Criteria) this;
            }

            public Criteria andRejectDateNotIn(List<Date> values) {
                addCriterion("reject_date not in", values, "rejectDate");
                return (Criteria) this;
            }

            public Criteria andRejectDateBetween(Date value1, Date value2) {
                addCriterion("reject_date between", value1, value2, "rejectDate");
                return (Criteria) this;
            }

            public Criteria andRejectDateNotBetween(Date value1, Date value2) {
                addCriterion("reject_date not between", value1, value2, "rejectDate");
                return (Criteria) this;
            }

        
        public Criteria andLikeQuery(MonthSupplytask record) {
            List<String> list = new ArrayList<String>();
            List<String> list2 = new ArrayList<String>();
            StringBuffer buffer = new StringBuffer();
                            if (record.getId() != null && StrUtil.isNotEmpty(record.getId().toString())) {
                    list.add("ifnull(id,'')");
                }
                            if (record.getFkEvaluationId() != null && StrUtil.isNotEmpty(record.getFkEvaluationId().toString())) {
                    list.add("ifnull(fk_evaluation_id,'')");
                }
                            if (record.getTaskMonth() != null && StrUtil.isNotEmpty(record.getTaskMonth().toString())) {
                    list.add("ifnull(task_month,'')");
                }
                            if (record.getSupplyId() != null && StrUtil.isNotEmpty(record.getSupplyId().toString())) {
                    list.add("ifnull(supply_id,'')");
                }
                            if (record.getSupplyName() != null && StrUtil.isNotEmpty(record.getSupplyName().toString())) {
                    list.add("ifnull(supply_name,'')");
                }
                            if (record.getFkSubcompanyId() != null && StrUtil.isNotEmpty(record.getFkSubcompanyId().toString())) {
                    list.add("ifnull(fk_subcompany_id,'')");
                }
                            if (record.getSubcompanyName() != null && StrUtil.isNotEmpty(record.getSubcompanyName().toString())) {
                    list.add("ifnull(subcompany_name,'')");
                }
                            if (record.getTaskState() != null && StrUtil.isNotEmpty(record.getTaskState().toString())) {
                    list.add("ifnull(task_state,'')");
                }
                            if (record.getCreateDate() != null && StrUtil.isNotEmpty(record.getCreateDate().toString())) {
                    list.add("ifnull(create_date,'')");
                }
                            if (record.getCommitDate() != null && StrUtil.isNotEmpty(record.getCommitDate().toString())) {
                    list.add("ifnull(commit_date,'')");
                }
                            if (record.getAuditDate() != null && StrUtil.isNotEmpty(record.getAuditDate().toString())) {
                    list.add("ifnull(audit_date,'')");
                }
                            if (record.getCompleteDate() != null && StrUtil.isNotEmpty(record.getCompleteDate().toString())) {
                    list.add("ifnull(complete_date,'')");
                }
                            if (record.getRejectReason() != null && StrUtil.isNotEmpty(record.getRejectReason().toString())) {
                    list.add("ifnull(reject_reason,'')");
                }
                            if (record.getRejectDate() != null && StrUtil.isNotEmpty(record.getRejectDate().toString())) {
                    list.add("ifnull(reject_date,'')");
                }
                                        if (record.getId() != null && StrUtil.isNotEmpty(record.getId().toString())) {
                    list2.add("'%" + record.getId() + "%'");
                }
                            if (record.getFkEvaluationId() != null && StrUtil.isNotEmpty(record.getFkEvaluationId().toString())) {
                    list2.add("'%" + record.getFkEvaluationId() + "%'");
                }
                            if (record.getTaskMonth() != null && StrUtil.isNotEmpty(record.getTaskMonth().toString())) {
                    list2.add("'%" + record.getTaskMonth() + "%'");
                }
                            if (record.getSupplyId() != null && StrUtil.isNotEmpty(record.getSupplyId().toString())) {
                    list2.add("'%" + record.getSupplyId() + "%'");
                }
                            if (record.getSupplyName() != null && StrUtil.isNotEmpty(record.getSupplyName().toString())) {
                    list2.add("'%" + record.getSupplyName() + "%'");
                }
                            if (record.getFkSubcompanyId() != null && StrUtil.isNotEmpty(record.getFkSubcompanyId().toString())) {
                    list2.add("'%" + record.getFkSubcompanyId() + "%'");
                }
                            if (record.getSubcompanyName() != null && StrUtil.isNotEmpty(record.getSubcompanyName().toString())) {
                    list2.add("'%" + record.getSubcompanyName() + "%'");
                }
                            if (record.getTaskState() != null && StrUtil.isNotEmpty(record.getTaskState().toString())) {
                    list2.add("'%" + record.getTaskState() + "%'");
                }
                            if (record.getCreateDate() != null && StrUtil.isNotEmpty(record.getCreateDate().toString())) {
                    list2.add("'%" + record.getCreateDate() + "%'");
                }
                            if (record.getCommitDate() != null && StrUtil.isNotEmpty(record.getCommitDate().toString())) {
                    list2.add("'%" + record.getCommitDate() + "%'");
                }
                            if (record.getAuditDate() != null && StrUtil.isNotEmpty(record.getAuditDate().toString())) {
                    list2.add("'%" + record.getAuditDate() + "%'");
                }
                            if (record.getCompleteDate() != null && StrUtil.isNotEmpty(record.getCompleteDate().toString())) {
                    list2.add("'%" + record.getCompleteDate() + "%'");
                }
                            if (record.getRejectReason() != null && StrUtil.isNotEmpty(record.getRejectReason().toString())) {
                    list2.add("'%" + record.getRejectReason() + "%'");
                }
                            if (record.getRejectDate() != null && StrUtil.isNotEmpty(record.getRejectDate().toString())) {
                    list2.add("'%" + record.getRejectDate() + "%'");
                }
                        buffer.append(" CONCAT(");
            buffer.append(StrUtil.join(",", list));
            buffer.append(")");
            buffer.append(" like CONCAT(");
            buffer.append(StrUtil.join(",", list2));
            buffer.append(")");
            if (!" CONCAT() like CONCAT()".equals(buffer.toString())) {
                addCriterion(buffer.toString());
            }
            return (Criteria) this;
        }

        public Criteria andLikeQuery2(String searchText) {
            List<String> list = new ArrayList<String>();
            StringBuffer buffer = new StringBuffer();
                            list.add("ifnull(id,'')");
                            list.add("ifnull(fk_evaluation_id,'')");
                            list.add("ifnull(task_month,'')");
                            list.add("ifnull(supply_id,'')");
                            list.add("ifnull(supply_name,'')");
                            list.add("ifnull(fk_subcompany_id,'')");
                            list.add("ifnull(subcompany_name,'')");
                            list.add("ifnull(task_state,'')");
                            list.add("ifnull(create_date,'')");
                            list.add("ifnull(commit_date,'')");
                            list.add("ifnull(audit_date,'')");
                            list.add("ifnull(complete_date,'')");
                            list.add("ifnull(reject_reason,'')");
                            list.add("ifnull(reject_date,'')");
                        buffer.append(" CONCAT(");
            buffer.append(StrUtil.join(",", list));
            buffer.append(")");
            buffer.append("like '%");
            buffer.append(searchText);
            buffer.append("%'");
            addCriterion(buffer.toString());
            return (Criteria) this;
        }

    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}